﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL.Admin;
using Entities.Admin;

namespace WindowsForms.Admin
{
    public partial class FormThemNhanVien : Form
    {
        public static NhanVien dataNv;
        public static DiaChi dataDc;


        string mabophan;
        public FormThemNhanVien()
        {
            InitializeComponent();
        }

        private void thoátToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void GanChoControl(NhanVien nhanvien, DiaChi dc)
        {
            if (nhanvien != null)
            {
                mtbmanv.Text = nhanvien.MaNhanVien;
                mtbmanv.ReadOnly = true;
                tbtennhanvien.Text = nhanvien.TenNhanVien;
                tbsodienthoai.Text = nhanvien.SoDienThoai;
                tbemail.Text = nhanvien.Email;
                dtngaysinh.Value = nhanvien.NamSinh;
                if (nhanvien.GioiTinh == "Nam")
                    radnam.Checked = true;
                else radnu.Checked = true;
                for (int i = 1; i < cbbophan.Items.Count; i++)
                {
                    if ((cbbophan.Items[i] as BoPhan).MaBoPhan == nhanvien.MaBoPhan)
                        cbbophan.SelectedIndex = i;
                }


            }

            if (dc != null)
            {
                tbsonha1.Text = dc.SoNha;
                tbtenduongnhv.Text = dc.TenDuong;
                tbquanhuyen.Text = dc.QuanHuyen;
                tbthanhpho.Text = dc.TinhTP;
            }
        }

        private void btluu_Click(object sender, EventArgs e)
        {
            NhanVien nhanvien = new NhanVien();
            DiaChi dc = new DiaChi();
            nhanvien.TenNhanVien = tbtennhanvien.Text;
            nhanvien.SoDienThoai = tbsodienthoai.Text;
            nhanvien.Email = tbemail.Text;
            nhanvien.MaBoPhan = mabophan;
            nhanvien.NamSinh = dtngaysinh.Value;

            nhanvien.GioiTinh = radnam.Checked ? "Nam" : "Nữ";

            nhanvien.MaNhanVien = mtbmanv.Text;
            if (!String.IsNullOrWhiteSpace(mtbmanv.Text) && !String.IsNullOrWhiteSpace(tbemail.Text) && !String.IsNullOrWhiteSpace(tbsodienthoai.Text))
            {
                if (QuanLiNhanVien.dsthanhpho.Where(x => x.Equals(tbthanhpho.Text)).ToList().Count > 0)
                {




                    dc.SoNha = tbsonha1.Text;
                    dc.TenDuong = tbtenduongnhv.Text;
                    dc.QuanHuyen = tbquanhuyen.Text;
                    dc.TinhTP = tbthanhpho.Text;


                    if (!QuanLiNhanVien.KiemTra(mtbmanv.Text, NhanVien.Objects.All().ToList()))
                    {
                        

                        int k = DiaChi.Objects.AddWithIdentity(dc);
                        nhanvien.IdDiaChi = k;
                        bool kt = NhanVien.Objects.Add(nhanvien);

                        if (kt && k != 0)
                        {
                            MessageBox.Show("Thêm Thành Công");
                            //this.Close();

                        }

                    }
                    else
                    {
                        DialogResult rs = MessageBox.Show("Nhân Viên Đã Có Bạn Muốn Cập Nhật Không", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (rs == DialogResult.Yes)
                        {
                            
                            NhanVien nv1 = NhanVien.Objects.GetById(nhanvien.MaNhanVien);
                            dc.IdDiaChi = nv1.IdDiaChi;
                            DiaChi.Objects.Update(dc);
                            nhanvien.IdDiaChi = nv1.IdDiaChi;
                            NhanVien.Objects.Update(nhanvien);

                        }

                    }






                }
                else MessageBox.Show("Nhập Thành Phố Cho Đúng");
            } 
             



            else MessageBox.Show("Mã Nhân Viên || Số Điện Thoại || Email Không Được Để Trống");

        }

        private void cbbophan_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            if (cbbophan.SelectedIndex > 0)
                mabophan = (cbbophan.SelectedItem as BoPhan).MaBoPhan;
        }



        private void UcThemNguoiDung_Load(object sender, EventArgs e)
        {
            QuanLiNhanVien.LoadCbBoPhan(cbbophan, BoPhan.Objects.All().ToList());
            GanChoControl(dataNv, dataDc);
            AutoCompleteStringCollection r = new AutoCompleteStringCollection();
            foreach (var item in QuanLiNhanVien.dsthanhpho)

                r.Add(item);

            tbthanhpho.AutoCompleteMode = AutoCompleteMode.Suggest;
            tbthanhpho.AutoCompleteSource = AutoCompleteSource.CustomSource;
            tbthanhpho.AutoCompleteCustomSource = r;
        }

        private void btreset_Click(object sender, EventArgs e)
        {
            mtbmanv.Text = "";

            tbtennhanvien.Text = "";
            tbsodienthoai.Text = "";
            tbemail.Text = "vhoang@gmail.com";
            dtngaysinh.Value = DateTime.Now;

            radnam.Checked = true;
            cbbophan.SelectedIndex = 1;
            tbthanhpho.Text = "";
            tbsonha1.Text = "";
            tbtenduongnhv.Text = "";
            tbquanhuyen.Text = "";

        }

        private void tbsodienthoai_Validated(object sender, EventArgs e)
        {
            errorProvider1.SetError(tbsodienthoai, null);
        }

        private void tbsodienthoai_Validating(object sender, CancelEventArgs e)
        {
            if (!QuanLiNhanVien.KiemTraSoDT(tbsodienthoai.Text))
            {
                errorProvider1.SetError(tbsodienthoai, "Ví Dụ 0989864480 || (077)3848822  +148481456");
                e.Cancel = true;
            }

        }

        private void tbemail_Validated(object sender, EventArgs e)
        {
            errorProvider1.SetError(tbemail, null);
        }

        private void tbemail_Validating(object sender, CancelEventArgs e)
        {
            if (!QuanLiNhanVien.KiemTraEamil(tbemail.Text))
            {
                errorProvider1.SetError(tbemail, "Mail Có Dạng phuit.dlu@gmail.com");
                e.Cancel = true;

            }
        }

        private void mtbmanv_Validated(object sender, EventArgs e)
        {
            errorProvider1.SetError(mtbmanv, null);
        }

        private void mtbmanv_Validating(object sender, CancelEventArgs e)
        {
            if (!QuanLiNhanVien.KiemTraMaNhanVien(mtbmanv.Text))
            {
                errorProvider1.SetError(mtbmanv, "NV_0000");
                e.Cancel = true;

            }
        }
    }
}
